package com.ayit.car.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 意向订单表
 * @TableName intention_orders
 */
@TableName(value ="intention_orders")
public class IntentionOrders implements Serializable {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 下单用户ID
     */
    private Long userId;

    /**
     * 汽车品牌ID
     */
    private Long brandId;

    /**
     * 车型选择
     */
    private String modelName;

    /**
     * 配置回显，JSON格式存储详细配置信息
     */
    private String configurationEcho;

    /**
     * 指导价
     */
    private BigDecimal guidePrice;

    /**
     * 外观颜色ID
     */
    private Long exteriorColorId;

    /**
     * 内饰颜色ID
     */
    private Long interiorColorId;

    /**
     * 上牌地区
     */
    private String plateArea;

    /**
     * 付款方式
     */
    private Object paymentMethod;

    /**
     * 是否考虑异地提车，0-否，1-是
     */
    private Integer considerOutOfTownPickup;

    /**
     * 考虑用车时间，格式如"2023-09-01至2023-09-30"
     */
    private String usageTime;

    /**
     * 备注
     */
    private String note;

    /**
     * 用车地点
     */
    private String usageLocation;

    /**
     * 创建时间
     */
    private Date createTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    public Long getId() {
        return id;
    }

    /**
     * 主键ID
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 下单用户ID
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * 下单用户ID
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * 汽车品牌ID
     */
    public Long getBrandId() {
        return brandId;
    }

    /**
     * 汽车品牌ID
     */
    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    /**
     * 车型选择
     */
    public String getModelName() {
        return modelName;
    }

    /**
     * 车型选择
     */
    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    /**
     * 配置回显，JSON格式存储详细配置信息
     */
    public String getConfigurationEcho() {
        return configurationEcho;
    }

    /**
     * 配置回显，JSON格式存储详细配置信息
     */
    public void setConfigurationEcho(String configurationEcho) {
        this.configurationEcho = configurationEcho;
    }

    /**
     * 指导价
     */
    public BigDecimal getGuidePrice() {
        return guidePrice;
    }

    /**
     * 指导价
     */
    public void setGuidePrice(BigDecimal guidePrice) {
        this.guidePrice = guidePrice;
    }

    /**
     * 外观颜色ID
     */
    public Long getExteriorColorId() {
        return exteriorColorId;
    }

    /**
     * 外观颜色ID
     */
    public void setExteriorColorId(Long exteriorColorId) {
        this.exteriorColorId = exteriorColorId;
    }

    /**
     * 内饰颜色ID
     */
    public Long getInteriorColorId() {
        return interiorColorId;
    }

    /**
     * 内饰颜色ID
     */
    public void setInteriorColorId(Long interiorColorId) {
        this.interiorColorId = interiorColorId;
    }

    /**
     * 上牌地区
     */
    public String getPlateArea() {
        return plateArea;
    }

    /**
     * 上牌地区
     */
    public void setPlateArea(String plateArea) {
        this.plateArea = plateArea;
    }

    /**
     * 付款方式
     */
    public Object getPaymentMethod() {
        return paymentMethod;
    }

    /**
     * 付款方式
     */
    public void setPaymentMethod(Object paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    /**
     * 是否考虑异地提车，0-否，1-是
     */
    public Integer getConsiderOutOfTownPickup() {
        return considerOutOfTownPickup;
    }

    /**
     * 是否考虑异地提车，0-否，1-是
     */
    public void setConsiderOutOfTownPickup(Integer considerOutOfTownPickup) {
        this.considerOutOfTownPickup = considerOutOfTownPickup;
    }

    /**
     * 考虑用车时间，格式如"2023-09-01至2023-09-30"
     */
    public String getUsageTime() {
        return usageTime;
    }

    /**
     * 考虑用车时间，格式如"2023-09-01至2023-09-30"
     */
    public void setUsageTime(String usageTime) {
        this.usageTime = usageTime;
    }

    /**
     * 备注
     */
    public String getNote() {
        return note;
    }

    /**
     * 备注
     */
    public void setNote(String note) {
        this.note = note;
    }

    /**
     * 用车地点
     */
    public String getUsageLocation() {
        return usageLocation;
    }

    /**
     * 用车地点
     */
    public void setUsageLocation(String usageLocation) {
        this.usageLocation = usageLocation;
    }

    /**
     * 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        IntentionOrders other = (IntentionOrders) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getBrandId() == null ? other.getBrandId() == null : this.getBrandId().equals(other.getBrandId()))
            && (this.getModelName() == null ? other.getModelName() == null : this.getModelName().equals(other.getModelName()))
            && (this.getConfigurationEcho() == null ? other.getConfigurationEcho() == null : this.getConfigurationEcho().equals(other.getConfigurationEcho()))
            && (this.getGuidePrice() == null ? other.getGuidePrice() == null : this.getGuidePrice().equals(other.getGuidePrice()))
            && (this.getExteriorColorId() == null ? other.getExteriorColorId() == null : this.getExteriorColorId().equals(other.getExteriorColorId()))
            && (this.getInteriorColorId() == null ? other.getInteriorColorId() == null : this.getInteriorColorId().equals(other.getInteriorColorId()))
            && (this.getPlateArea() == null ? other.getPlateArea() == null : this.getPlateArea().equals(other.getPlateArea()))
            && (this.getPaymentMethod() == null ? other.getPaymentMethod() == null : this.getPaymentMethod().equals(other.getPaymentMethod()))
            && (this.getConsiderOutOfTownPickup() == null ? other.getConsiderOutOfTownPickup() == null : this.getConsiderOutOfTownPickup().equals(other.getConsiderOutOfTownPickup()))
            && (this.getUsageTime() == null ? other.getUsageTime() == null : this.getUsageTime().equals(other.getUsageTime()))
            && (this.getNote() == null ? other.getNote() == null : this.getNote().equals(other.getNote()))
            && (this.getUsageLocation() == null ? other.getUsageLocation() == null : this.getUsageLocation().equals(other.getUsageLocation()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getBrandId() == null) ? 0 : getBrandId().hashCode());
        result = prime * result + ((getModelName() == null) ? 0 : getModelName().hashCode());
        result = prime * result + ((getConfigurationEcho() == null) ? 0 : getConfigurationEcho().hashCode());
        result = prime * result + ((getGuidePrice() == null) ? 0 : getGuidePrice().hashCode());
        result = prime * result + ((getExteriorColorId() == null) ? 0 : getExteriorColorId().hashCode());
        result = prime * result + ((getInteriorColorId() == null) ? 0 : getInteriorColorId().hashCode());
        result = prime * result + ((getPlateArea() == null) ? 0 : getPlateArea().hashCode());
        result = prime * result + ((getPaymentMethod() == null) ? 0 : getPaymentMethod().hashCode());
        result = prime * result + ((getConsiderOutOfTownPickup() == null) ? 0 : getConsiderOutOfTownPickup().hashCode());
        result = prime * result + ((getUsageTime() == null) ? 0 : getUsageTime().hashCode());
        result = prime * result + ((getNote() == null) ? 0 : getNote().hashCode());
        result = prime * result + ((getUsageLocation() == null) ? 0 : getUsageLocation().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", userId=").append(userId);
        sb.append(", brandId=").append(brandId);
        sb.append(", modelName=").append(modelName);
        sb.append(", configurationEcho=").append(configurationEcho);
        sb.append(", guidePrice=").append(guidePrice);
        sb.append(", exteriorColorId=").append(exteriorColorId);
        sb.append(", interiorColorId=").append(interiorColorId);
        sb.append(", plateArea=").append(plateArea);
        sb.append(", paymentMethod=").append(paymentMethod);
        sb.append(", considerOutOfTownPickup=").append(considerOutOfTownPickup);
        sb.append(", usageTime=").append(usageTime);
        sb.append(", note=").append(note);
        sb.append(", usageLocation=").append(usageLocation);
        sb.append(", createTime=").append(createTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}